使用 keytool 生成密钥对 + keytool 命令详解

您所在的位置:网站首页 kibana 转义字符 使用 keytool 生成密钥对 + keytool 命令详解

使用 keytool 生成密钥对 + keytool 命令详解

2023-09-01 15:55| 来源: 网络整理| 查看: 265

使用 keytool 生成密钥对 + keytool 命令详解

keytool是jdk提供用来生成SSL/TLS密钥的工具。 使用案例: 这里只考虑密钥仓库的使用,假设有AB两台服务器,A的证书为cerA,B的证书为cerB,可以通过keytool导出cer证书,该证书内部包含了公钥。

当需要双向认证的时候,比如内部服务器之间相互传输数据,为了安全考虑使用了SSL/TLS在传输层和应用层之间进行数据加密。为了进行双向认证,这时候就需要双方都持有对方的导出的证书。即需要将cerB导入进A服务器的密钥仓库,将cerA导入到B服务器的密钥仓库,这是服务双方都含有对方的公钥,可以进行双向认证。

当只需要单向认证的时候,一般是客户端验证服务端,所以客户端需要导入服务端的证书。

一、生成密钥对 keytool -genkeypair -alias own-alias -keyalg RSA -sigalg SHA256withRSA -dname "cn=zolmk,ou=zolmk,o=zolmk,l=HN,st=HN,c=CN" -validity 3650 -storetype JKS -keypass password -storepass password -keystore keystore.jks

参数详解:

-genkeypair:原 -genkey,Java 1.6 之后更改,表示生成密钥对 -alias:产生别名,每个 keystore 都会关联这一个独一无二的 alias,alias 不区分大小写 -keyalg:指定产生密钥的算法 -keypass:指定别名条目的密码(私钥的密码) -sigalg:签名算法名称 -dname:唯一判别名,cn 所有者名称,ou 组织单位名称,o 组织名称,l 城市或区域名称,st 州或省份名称,c 两字母国家代码 -validity:有效天数 -keystore:密钥库名称 -storetype:密钥库类型 -storepass:密钥库口令 二、查看密钥库 keytool -list -v -keystore keystore.jks -storepass "password" -list:列出密钥库中的条目 -v:详细输出 -keystore:密钥库文件 三、keytool 全部命令 -certreq 生成证书请求 -changealias 更改条目的别名 -delete 删除条目 -exportcert 导出证书 -genkeypair 生成密钥对 -genseckey 生成密钥 -gencert 根据证书请求生成证书 -importcert 导入证书或证书链 -importpass 导入口令 -importkeystore 从其他密钥库导入一个或所有条目 -keypasswd 更改条目的密钥口令 -list 列出密钥库中的条目 -printcert 打印证书内容 -printcertreq 打印证书请求的内容 -printcrl 打印 CRL 文件的内容 -storepasswd 更改密钥库的存储口令 1)二级命令参数 -list 列出密钥库中的条目

命令示例:keytool -list -keystore keystore.jks -storepass password

-rfc 以 RFC 样式输出 -alias 要处理的条目的别名 -keystore 密钥库名称 -storepass 密钥库口令 -storetype 密钥库类型 -providername 提供方名称 -providerclass 提供方类名 -providerarg 提供方参数 -providerpath 提供方类路径 -v 详细输出 -protected 通过受保护的机制的口令 -genkeypair 生成密钥对

命令示例:keytool -genkeypair -alias own-alias -keyalg RSA -sigalg SHA256withRSA -dname "cn=zolmk,ou=zolmk,o=zolmk,l=HN,st=HN,c=CN" -validity 3650 -storetype JKS -keypass password -storepass password -keystore keystore.jks

-alias 要处理的条目的别名 -keyalg 密钥算法名称 -keysize 密钥位大小 -sigalg 签名算法名称 -destalias 目标别名 -dname 唯一判别名 -startdate 证书有效期开始日期/时间 -ext X.509 扩展 -validity 有效天数 -keypass 密钥口令 -keystore 密钥库名称 -storepass 密钥库口令 -storetype 密钥库类型 -providername 提供方名称 -providerclass 提供方类名 -providerarg 提供方参数 -providerpath 提供方类路径 -v 详细输出 -protected 通过受保护的机制的口令 -genseckey 生成密钥 -alias 要处理的条目的别名 -keypass 密钥口令 -keyalg 密钥算法名称 -keysize 密钥位大小 -keystore 密钥库名称 -storepass 密钥库口令 -storetype 密钥库类型 -providername 提供方名称 -providerclass 提供方类名 -providerarg 提供方参数 -providerpath 提供方类路径 -v 详细输出 -protected 通过受保护的机制的口令 -certreq 生成证书请求 -alias 要处理的条目的别名 -sigalg 签名算法名称 -file 输出文件名 -keypass 密钥口令 -keystore 密钥库名称 -dname 唯一判别名 -storepass 密钥库口令 -storetype 密钥库类型 -providername 提供方名称 -providerclass 提供方类名 -providerarg 提供方参数 -providerpath 提供方类路径 -v 详细输出 -protected 通过受保护的机制的口令 -changealias 更改条目的别名 -alias 要处理的条目的别名 -destalias 目标别名 -keypass 密钥口令 -keystore 密钥库名称 -storepass 密钥库口令 -storetype 密钥库类型 -providername 提供方名称 -providerclass 提供方类名 -providerarg 提供方参数 -providerpath 提供方类路径 -v 详细输出 -protected 通过受保护的机制的口令 -delete 删除条目 -alias 要处理的条目的别名 -keystore 密钥库名称 -storepass 密钥库口令 -storetype 密钥库类型 -providername 提供方名称 -providerclass 提供方类名 -providerarg 提供方参数 -providerpath 提供方类路径 -v 详细输出 -protected 通过受保护的机制的口令 -exportcert 导出证书

命令示例:keytool -exportcert -alias nettyServer -keystore nettyServer.jks -file nettyServer.cer -storepass password

-rfc 以 RFC 样式输出 -alias 要处理的条目的别名 -file 输出文件名 -keystore 密钥库名称 -storepass 密钥库口令 -storetype 密钥库类型 -providername 提供方名称 -providerclass 提供方类名 -providerarg 提供方参数 -providerpath 提供方类路径 -v 详细输出 -protected 通过受保护的机制的口令 -gencert 根据证书请求生成证书 -rfc 以 RFC 样式输出 -infile 输入文件名 -outfile 输出文件名 -alias 要处理的条目的别名 -sigalg 签名算法名称 -dname 唯一判别名 -startdate 证书有效期开始日期/时间 -ext X.509 扩展 -validity 有效天数 -keypass 密钥口令 -keystore 密钥库名称 -storepass 密钥库口令 -storetype 密钥库类型 -providername 提供方名称 -providerclass 提供方类名 -providerarg 提供方参数 -providerpath 提供方类路径 -v 详细输出 -protected 通过受保护的机制的口令 -importcert 导入证书或证书链

命令示例:keytool -importcert -trustcacerts -alias nettyServer -file nettyServer.cer -storepass password -keystore nettyClient.jks

-noprompt 不提示 -trustcacerts 信任来自 cacerts 的证书 -protected 通过受保护的机制的口令 -alias 要处理的条目的别名 -file 输入文件名 -keypass 密钥口令 -keystore 密钥库名称 -storepass 密钥库口令 -storetype 密钥库类型 -providername 提供方名称 -providerclass 提供方类名 -providerarg 提供方参数 -providerpath 提供方类路径 -v 详细输出 -importpass 导入口令 -alias 要处理的条目的别名 -keypass 密钥口令 -keyalg 密钥算法名称 -keysize 密钥位大小 -keystore 密钥库名称 -storepass 密钥库口令 -storetype 密钥库类型 -providername 提供方名称 -providerclass 提供方类名 -providerarg 提供方参数 -providerpath 提供方类路径 -v 详细输出 -protected 通过受保护的机制的口令 -importkeystore 从其他密钥库导入一个或所有条目 -srckeystore 源密钥库名称 -destkeystore 目标密钥库名称 -srcstoretype 源密钥库类型 -deststoretype 目标密钥库类型 -srcstorepass 源密钥库口令 -deststorepass 目标密钥库口令 -srcprotected 受保护的源密钥库口令 -srcprovidername 源密钥库提供方名称 -destprovidername 目标密钥库提供方名称 -srcalias 源别名 -destalias 目标别名 -srckeypass 源密钥口令 -destkeypass 目标密钥口令 -noprompt 不提示 -providerclass 提供方类名 -providerarg 提供方参数 -providerpath 提供方类路径 -v 详细输出 -keypasswd 更改条目的密钥口令 -alias 要处理的条目的别名 -keypass 密钥口令 -new 新口令 -keystore 密钥库名称 -storepass 密钥库口令 -storetype 密钥库类型 -providername 提供方名称 -providerclass 提供方类名 -providerarg 提供方参数 -providerpath 提供方类路径 -v 详细输出 -printcert 打印证书内容 -rfc 以 RFC 样式输出 -file 输入文件名 -sslserver SSL 服务器主机和端口 -jarfile 已签名的 jar 文件 -v 详细输出 -printcertreq 打印证书请求的内容 -file 输入文件名 -v 详细输出 -printcrl 打印 CRL 文件的内容 -file 输入文件名 -v 详细输出 -storepasswd 更改密钥库的储存口令 -new 新口令 -keystore 密钥库名称 -storepass 密钥库口令 -storetype 密钥库类型 -providername 提供方名称 -providerclass 提供方类名 -providerarg 提供方参数 -providerpath 提供方类路径 -v 详细输出


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3